 $ type sys$update:VAXGKS020.RELEASE_NOTES;1


                        VAX GKS V2.0 Release Notes




     1  GKS INSTALLATION NOTES

     1.1  Prerequisites For Installation

     VAX GKS requires VMS V4.4 or later, or MicroVMS  V4.4  or  later.
     The  GKS  installation procedure tests for the version of VMS and
     terminates with an error if the version of VMS  is  not  V4.4  or
     later.

     For MicroVAX systems, if the  Program  Development  component  is
     desired, then it must be installed before installing GKS.  If the
     Program Development component is installed at a later date,  then
     VAX  GKS  must be reinstalled.  However, VAX GKS may be installed
     on a system without the Program Development component.

     VAX GKS will install without problem on a VAXstation  I,  II,  or
     II/GPX  that  does  not  have  the  MicroVMS Workstation Software
     installed.  However, this software is required when running a GKS
     program  that  opens the VAXstation as a GKS workstation.  If the
     MicroVMS Workstation Software V3.0 is installed at a later  date,
     then  VAX  GKS  must be re-installed in order to use the MicroVMS
     Workstation Software.

     The Installation Guide  states  that  the  following  values  are
     checked  and  could  cause  error conditions if not properly set.
     These values are not checked during the installation and will not
     produce an error condition.

      o  Insufficient system virtual page count parameter

      o  Insufficient subprocess quota

      o  Insufficient open file quota

      o  Insufficient process paging file quota

      o  Insufficient process working set quota

      o  Insufficient system maximum working set




     1.2  Installation Differences Between V1.2 And V2.0

     The VAX GKS  installation  procedure  has  changed  significantly
     since  V1.2.   It  is  recommended  that  you  review the VAX GKS
     Installation Guide prior to installing VAX GKS.



                                                                Page 2


     1.3  Reinstalling VAX GKS V2.0

     If the VAX GKS installation procedure is run more than once on  a
     system,  previous versions of files which are not selected during
     the subsequent installation are deleted  with  the  exception  of
     installed  images  (which  will  instead  cause  a  warning to be
     displayed).  For example, if  you  did  not  select  the  FORTRAN
     binding  during  your second VAX GKS installation, but did during
     the first installation, then the FORTRAN binding  file  from  the
     first  installation  will  be  deleted  as a result of the second
     installation.



     2  DIFFERENCES BETWEEN VAX GKS V1.2 AND VAX GKS V2.0

     There are a number of differences between VAX GKS  V1.2  and  VAX
     GKS  V2.0  due  to  changes  in  the  GKS  standard before it was
     accepted in July 1985, and due to some functional changes in  VAX
     GKS.   These  differences  range from changes in functionality to
     changes in parameters with the GKS function calls.  It is  highly
     recommended  that  any existing programs using VAX GKS be checked
     against the list in the VAX GKS Reference Manual  and  recompiled
     after  any necessary changes have been made.  Please refer to the
     VAX GKS Reference Manual for a list of the changes  and  detailed
     information on specific functions.

     Because of the incompatibility caused  by  the  large  number  of
     changes, the installation procedure allows you to keep VAX GKS/0b
     V1.2 on the system while any application  programs  are  updated.
     Please  refer  to  the  VAX GKS Installation Guide for additional
     information.



     2.1  Changes With The FORTRAN Binding

     Due to changes with the FORTRAN binding standard, there have been
     a  number  of  changes  with the VAX GKS FORTRAN binding.  Please
     refer to the VAX GKS Reference Manual for a detailed  description
     of these changes.



     2.2  Change In Device Coordinates

     All device coordinates now have  the  origin  in  the  lower-left
     corner.   In VAX GKS V1.2 the device coordinates of the VT125 and
     VT240 devices had the origin in the upper-left corner.  Since the
     echo areas for input devices are given in device coordinates, the
     physical location of the echo areas on these devices will  change
     unless the values supplied are properly adjusted.









                                                                Page 3


     2.3  Implementation Defined Values Are Negative

     VAX GKS has changed  the  implementation  defined  values  to  be
     negative numbers.  The effect of this change is the following:

      o  Text fonts (other than font one (1)) are now referenced by  a
         negative value.  The logical names pointing to the GKS stroke
         text fonts now use the negative values.

      o  Fill area hatch style indexes are now referenced by  negative
         values.

      o  VAX GKS specific error numbers are now negative values.   The
         symbols  for  the  VAX  GKS  specific  error  numbers are now
         prefaced by  VAXGKS$_ERROR_NEG_xx  (where  xx  is  the  error
         number).




     2.4  Text

     VAX GKS V1.2 computed the magnitude of both the text up and  base
     vectors  as  the text height multiplied by the vertical window to
     viewport scale factor.  In addition, the text up vector and  text
     base  vector  are  always  perpendicular.   If the text expansion
     factor is 0.0, characters were drawn  using  the  nominal  aspect
     ratio, regardless of the the normalization transformation.

     VAX GKS V2.0, in accordance with the GKS  standard,  applies  the
     normalization  transformation  to  both  the text up and the text
     base   vectors.    This   means   that   if   the   normalization
     transformation  aspect  ratio  is non-uniform, the resulting text
     may look compressed, expanded or even skewed.  The text may  need
     to be adjusted by modifying some of the text attributes.



     2.5  GKS Error Numbers

     Some of the GKS standard error status codes have changed  values.
     The  messages  are  the  same,  but  the actual error numbers are
     different.

     Some functions have additional error checking and error  messages
     to be reported.



     2.6  Different Method Of Defining VAX GKS Error Symbols

     The constants which define the possible VAX GKS errors  must  now
     be  explicitly included as part of the application if they are to
     be referenced by the application.  The error  message  definition
     files  are  placed  in SYS$LIBRARY during the installation of VAX









                                                                Page 4


     GKS.  There is one file for each supported language, and they are
     named GKSMSGS.FOR, GKSMSGS.H, and so forth.



     2.7  Change In Default Deferral Mode

     The default deferral mode for the  ReGIS  and  Tektronix*  device
     handlers has been changed from ASAP (As Soon As Possible) to BNIG
     (Before  Next  Interaction  Globally).   This  implies  that  any
     graphical  output may not immediately appear, but may be deferred
     until 1) the internal buffer holding the output becomes full  and
     the  buffer  is  flushed,  2)  an update workstation is performed
     (either explicitly or implicitly), 3) a  request  input  call  is
     invoked from any open workstation, or 4) deferral mode is changed
     to ASAP.  If the screen must be current at  any  given  point  in
     time,  then the recommended way to do this is call the GKS$UPDATE
     function    with    the    flag    field    set    to    postpone
     (GKS$K_POSTPONE_FLAG).



     3  ENHANCEMENTS

     3.1  Level 2b Support

     VAX GKS V2.0 conforms to the level 2b of the GKS standard  as  it
     was  accepted  in  July  1985.   Level  2b  includes  support for
     workstation  dependent  and   workstation   independent   segment
     storage, dynamic bundles, and pick input.



     3.2  User-Writeable Graphics Handlers

     VAX GKS V2.0 supports an interface that allows users to write VAX
     GKS  graphics  handlers.   This  allows  graphics  handlers to be
     written for graphical devices not supported by DIGITAL.



     3.3  New Device Support

     VAX GKS now supports the VAXstation II/GPX workstation, and  also
     supports  the  LCP01  color  ink jet printer, the LA12 dot matrix
     printer, and  the  LN03  Plus  laserprinter.   VAX  GKS  supports
     additional  devices  which  use  the  HPGL protocol:  the HP7475,
     HP7550, HP7580, HP7585, and the Lasergraphics MPS2000.   VAX  GKS
     supports   the  PostScript*  protocol,  and  supports  the  Apple
     LaserWriter* using this protocol.  Please refer to  the  VAX  GKS
     Reference Manual for additional information on these devices.

     VAX GKS also supports the LN03 Plus laserprinter.  This device is
     workstation  type  38  and  has the same bundle attributes as the
     other sixel devices (see Appendix K  in  the  VAX  GKS  Reference









                                                                Page 5


     Manual).   VAX  GKS RTO supports the LN03 Plus laserprinter.  The
     workstation type for this printer is 38.



     4  RESTRICTIONS REMOVED

     4.1  Defining The Connection Identification To Be A File

     VAX GKS will  now  allow,  for  certain  workstation  types,  the
     connection identifier to be a VMS file specification.  This is to
     be used if the graphical output is to be sent to a spooled device
     instead of a device which is allocated by the process.  Note that
     the ReGIS and Tektronix* 4014  device  handlers  have  a  special
     output-only  workstation  type  which  is  to  be  used  when the
     graphical output is to be put into  a  file.   These  workstation
     types are 10 for the black/white ReGIS, and 70 for the Tektronix*
     4014.

     When a Tektronix* 4014 output file is to be sent to a  Tektronix*
     4014,  be  sure that the device is in PASSTHRU mode.  This may be
     accomplished by the DCL command, SET TERMINAL /PASSTHRU.



     4.2  Tektronix 4014 Emulation On VAXstations

     The restriction of not being  able  to  use  the  Tektronix  4014
     workstation (workstation type 72) on the VMS VAXstations has been
     removed.



     5  NOTES AND RESTRICTIONS FOR VAX GKS

     5.1  Notes

     5.1.1  Deleting Message Windows On VAXstations

     The GKS$MESSAGE function causes message window to be displayed on
     the  VAXstation  display.  This window will remain on the display
     until explicitly deleted by selecting the "DELETE" choice in  the
     "WINDOW OPTIONS" menu of the message window.



     5.1.2  Color Map Reservations For VSII/GPX

     If an application program attempts to reserve color  map  entries
     on  a VAXstation a number of times, then an error may result from
     VAX GKS stating the  color  map  reservation  was  unable  to  be
     created  even  though  it appears that there is room in the color
     map.  This is because the MicroVMS  Workstation  Software  allows
     VAX  GKS  to reserve color map entries only as powers of two, and
     the number of requested entries  have  been  rounded  up  to  the









                                                                Page 6


     nearest power of two.



     5.1.3  Apple LaserWriter*

     Our experience has shown that the Apple LaserWriter hardware will
     occasionally  get  into  an improper state.  This can cause it to
     incorrectly  execute  valid  PostScript  programs,  resulting  in
     spurious   error   messages  or  marks  on  the  page.   If  your
     LaserWriter  fails  to  correctly  execute  the  PostScript  code
     generated  by  VAX GKS, please reboot the machine (by turning the
     power off and on again) and try again.  If it still fails, please
     submit  a  SPR.  Please mention if you are running on an original
     LaserWriter, LaserWriter revision 2, or a LaserWriter Plus.



     5.2  Restrictions

     5.2.1  Insert Segment And Metafiles

     GKS$INSERT_SEG does not work properly when used with  a  metafile
     output  workstation  and when the insert transformation matrix is
     not the identity matrix.



     5.2.2  Inquire Text Extent On VAXstations

     When using the VMS  VAXstations,  if  GKS$INQUIRE_TEXT_EXTENT  is
     performed  on a string precision text while a segment is open, it
     will return an extent rectangle which ignores the rotational  and
     scaling components of the segment transformation matrix.

     A work around to this  restriction  is  to  perform  text  extent
     related  computations  with  the segment rotation component as 0,
     and the X and Y scaling as both 1.  Another alternative is to use
     character precision text instead of string precision.



     6  DOCUMENTATION ERRATA AND OMISSIONS

     6.1  Writing VAX GKS Graphics Handlers

     6.1.1  Constants Misnamed

     All  references  to  GKS$K_SET,  and  GKS$K_REALIZED  should   be
     GKS$K_VALUE_SET and GKS$K_VALUE_REALIZED.










                                                                Page 7


     6.1.2  Example Workstation Description Table For Device Handlers

     The example Workstation Description Table in Chapter 3 is missing
     the   DEFAULT_DEFERRAL_MODE   field.   This  field  is  described
     properly earlier in the chapter.



     6.1.3  Clear Screen For Device Handlers

     The clear function for device handlers must  distinguish  between
     having to clear the display surface and having to change the size
     of the display window.  This can be performed  by  the  following
     checks:

     If viewport[XMIN] = viewport[XMAX] = 0.0, then the device handler
     should  clear  the display surface and, if appropriate, perform a
     form feed.  Otherwise, if the device handler can change the  size
     of  the display surface, then the handler should make the display
     surface the size of the viewport as given in the input parameter.
     The device handler may optionally clear the display surface.



     6.1.4  Set Pattern Representation For Workstation Handlers

     The workstation handlers 'Set Pattern Representation' routine has
     a  parameter  called  'column_major'.  This parameter will always
     indicate a row major array -- the routine need not check for both
     row major and column major.



     6.2  VAX GKS Reference Manual

     6.2.1  Corrections To Appendix B

     Table B-1 which lists the VAX GKS  constants  names  and  FORTRAN
     binding  names  does  not  include  the  names  for the LN03 Plus
     laserprinter.  The constants for this are as follows:

     VAX GKS constant  Binding   Value    Description
     GKS$K_LN03_PLUS    GLN03P    38    DIGITAL LN03 Plus



     6.2.2  Corrections To Appendix I

     The default echo area for locator, stroke, and pick  input  types
     for the VMS VAXstations are incorrectly listed as ([0, 0.3286231]
     x [0, 0.2695890]), the correct  echo  area  is  ([0,0.3319021]  x
     [0,0.2738526]).









                                                                Page 8


     6.2.3  Corrections To Appendix M

     The table listing the Text Bundle Values  for  the  HPGL  devices
     lists the spacing as 1.0; the correct value should be 0.0.

     The table listing the Device Coordinate Information for the  HPGL
     devices  lists  the  MPS2000  as  a  range  of ([0, 0.2578] x [0,
     0.1960]),  the  correct  range  should  be  ([0,  0.2578]  x  [0,
     0.1981]).



     6.2.4  VAXstation Escape Functions

     The VAXstations support a single Escape function that  enables  a
     program  to  be informed when the operator has dragged or resized
     the workstation viewport.   The  escape  function  identifier  is
     negative  four (-4).  This escape function allows the application
     to specify two routines, one  of  which  gets  control  when  the
     operator  attempts  to resize the display viewport, and the other
     of which gets control when the operator drags the viewport.

     The format of the Escape function -4 input data record is:

        
        Longword :      Integer number of integer arguments (must be 5)
        Longword :      Integer number of floating point arguments
                              (ignored)
        Longword :      Integer number of string arguments (ignored)
        Longword :      Integer workstation id
        Bound procedure value:  
                        Resize-window routine 
        Bound procedure value:
                        Drag-window routine

     The resize-window routine and drag-window routine are  passed  by
     bound procedure value, for the sake of languages (such as Pascal)
     which support up-level addressing.  If  your  language  does  not
     support  up-level  addressing  (languages  such as C, FORTRAN, or
     BASIC), then, instead  of  a  bound  procedure  value,  pass  two
     longwords, the first longword containing the routine entry point,
     and the second longword set to 0.  The input data record must  32
     bytes long.



     6.2.4.1  Resize Window Routine

     When the  operator  attempts  to  resize  the  display  viewport,
     control  is  passed  to the specified routine without the display
     viewport having actually been resized.  The syntax of the routine
     which is to be called must be:

          RESIZE_WINDOW_ROUTINE_NAME( workstation_id,
          workstation_viewport )









                                                                Page 9


     where the arguments are defined as:

        workstation_id

                data_type:      longword integer (signed)
                access:         readonly
                mechanism:      by reference

                This is the workstation id whose display viewport the
                operator wishes to resize.

        workstation_viewport

                data_type:      F_floating point
                access:         readonly
                mechanism:      by reference
        
                This is an array describing the rectangle which the
                operator specified in the order: minimum x, maximum x,
                minimum y, maximum y.

     In the case that such a routine  is  called,  GKS  will  take  no
     further  action.   In  particular, it will not resize the display
     viewport.  Any such actions are left to the application.

     If a NULL (0) entry point is passed as the  entry  point  of  the
     resize-window  routine,  then  GKS will not call a user specified
     routine.   In  such  a  case,  GKS  will  perform   an   implicit
     GKS$SET_WS_VIEWPORT,  passing the user specified rectangle.  This
     will force a regeneration of the image, and primitives outside of
     segments  will no longer be displayed.  The workstation window is
     not changed.  This is also the default behavior.



     6.2.4.2  Drag Window Routine

     When the operator has dragged the display  viewport,  control  is
     passed  to  the  routine  specified  by  the  drag_window routine
     parameter.  The syntax of the routine to be called must be:

          DRAG_WINDOW_ROUTINE_NAME( workstation_id )

     where the argument is defined as:

        workstation_id

                data_type:      longword integer (signed)
                access:         readonly
                mechanism:      by reference

                This is the workstation id whose display viewport has been 
                moved.

     In the case that such a  routine  is  specified,  GKS  will  pass









                                                               Page 10


     control  to  the  routine after the window has been dragged.  The
     routine can call GKS$INQ_WS_XFORM to determine  the  location  of
     the  viewport.   The  application is free to re-adjust the window
     location, moving it back to  where  it  had  been  if  necessary.
     (There is no way to disable operator dragging of the window).

     If a NULL (0) entry point is passed as an escape parameter,  then
     GKS  will not call a user specified routine.  In such a case, the
     viewport position will change as if  a  GKS$SET_WS_VIEWPORT  were
     performed.   However,  no  regeneration  will take place, so that
     primitives outside of segments will be maintained.  This is  also
     the default behavior.


     * TEKTRONIX is a trademark of TEKTRONIX, Inc.
     * PostScript is a trademark of Adobe Systems, Inc.
     * LaserWriter is a trademark of Apple Computer, Inc.
     HP7475 is a registered trademark of Hewlett Packard.
     HP7550 is a registered trademark of Hewlett Packard.
     HP7580 is a registered trademark of Hewlett Packard.
     HP7585 is a registered trademark of Hewlett Packard.
     MPS2000 is a registered trademark of Lasergraphics.

